查看原文
其他

ArcGIS Python从0到1!编程入门到提高(基础篇)

gisoracle GIS前沿 2022-12-04


>>>>

ArcGIS为什么学习Python


学习Python原因如下:


1.数据分析、人工智能、机器学习使用语言是Python


2.Python易于学习,入门快,简练,高效,变量不用预定义,并且随时可以改变类型


3.Python拥有最成熟的程序包资源库之一arcpy,后面直接说ArcGIS python开发直接简称arcpy,arcpy主要模块,如表1-1所示。


表1-1 arcpy主要模块

模块名称

功能

arcpy.da

数据访问模块。提供了增、删、査、改等数据记录操作的类和函数。

arcpy.mapping

地图制图模块。提供了操作mxd文档、地图渲染、地图打印输出、地图服务发布等功能。

arcpy.na

网络分析扩展模块。用于访问网络分析地理处理工具。

arcpy.sa

栅格分析模块。用于访问空间分析地理处理工具

arcpy.time

处理时间增量和时区时会用到的类、方法以及属性。


4.在ArcGIS中python,界面和代码分离,Python负责写代码,arcgis负责定制界面。


5.在各种开发语言中多年排名第一


6.在ArcGIS中Python是开源的,不用安装其他软件,还内置命令行。


7.Python缺点,不擅长界面。


8.在ArcGIS,Python主要是处理数据,每个工具调用基本都是一行代码,非常简练。不过在ArcMap 10.7中Python版本是2.7,而在ArcGIS Pro 2.5中使用版本3.6.8,ArcGIS Pro 2.6中是python 3.6.10版本。



>>>>

ArcGIS怎么学习Python


1.看帮助,看每个工具帮助,每个工具箱的工具都有python调用代码,需要搜素工具箱的工具:中文搜索加空格,英文搜素加*,也可以输入文件扩展名。


2.运行工具,就有python代码,在地理处理主菜单→结果,界面右键菜单,如图1-1所示。本人认为主要的问题是开发和解决问题思路,会手工操作,基本就有代码。


图1-1 地理处理结果中获得python代码


3.加入模型中,可以导出python代码,如图1-2所示,但不是导出的脚本,都能用,个别需要修改,主要python2.x不支持汉字变量,还有以下几点。


1)如果需要覆盖数据,可将 arcpy.env.overwriteOutput 属性设置为 True。

2)如果模型使用的图层或表视图不是在原始模型中创建,则必须使用创建要素图层(MakeFeatureLayer)和创建表视图(MakeTableView)等工具在脚本中创建这些图层或表视图。

3)模型的数据元素会直接转换为导出脚本中的变量。避免命名 Python 中不兼容的数据元素(例如 class、global 和 return)。

4)如果模型使用了任何行内变量替换(如 %workspace%、%scratchworkspace%、%n%、%i% 或 %variable name%),则必须使用正确的值来替换这些变量。

5)如果模型使用了迭代器,则迭代逻辑将不会被导出,而必须在 Python 中替换为循环语句。

6)只有列表变量中的第一个值将被导出。

7)如果模型使用了“仅模型”工具(如合并分支、收集值或计算值),则这些工具不会在 Python 中运行。需要实现与这些工具所提供的等效的 Python 功能。例如,需要使用 if/else 逻辑在脚本中执行分支。

8)如果模型包括子模型,则不会导出这些子模型中的内容。而是必须引用工具箱并需要在脚本内调用模型工具。


图1-2  模型导出python脚本


4.有一定python语言基础,严格区分大小写,靠:缩进实现语法,汉字(在Python3中,可以是汉字)不能做变量(也不能数字开头)。



>>>>

ArcGIS执行Python几种方式和注意事项


1.Python窗口


2.独立运行脚本


ArcGIS 10.X中使用python2.7,默认是ASCII码,务必修改为编码utf8(是针对Unicode的一种可变长度字符编码) ,方法是编写sitecustomize.py,内容如下

#coding=utf8import sysreload(sys)sys.setdefaultencoding('utf8')


拷贝到C:\Python27\ArcGIS10.X\Lib\site-packages\,10.X是ArcGIS的版本,如果是ArcGIS 10.7,就是10.7。



>>>>

函数的多参数调用方法


以“要素转点”,“要素转线”等工具为列,有以下方式:


1.arcpy.FeatureToPoint_management("jfb", "parcels_center", "CENTROID") #每个参数都填值


2.arcpy.FeatureToPoint_management("jfb", "parcels_center") #可选参数不填


3.arcpy.FeatureToPoint_management("jfb", "parcels_center", point_location="CENTROID") #可选参数填写参数名


4.arcpy.FeatureToLine_management(in_features=“JFB”,out_feature_class=“C:/Users/dell/Documents/ArcGIS/Default.gdb/JFB_FeatureToLine”,cluster_tolerance=“#”,attributes=“ATTRIBUTES”) #每个参数填写参数名,空值为。


总结:所有的按顺序填写,可选参数,可以填,也可以不填,多个可选把参数名填写上,不需要就不填写,空值使用"#"。



>>>>

Python 编辑器设置和调式


Python编辑器


1.PyScripter,对应文件:PyScripter-v3.4.2-Setup.exe,在第一章资料下,安装之后他自动获得ArcMap中Python的路径,在主菜单的Tools→Python Path,如图1-3所示。


图1-3  PyScripter中Python Path的路径


由于ArcMap是32位程序,所以使用PyScripter是32位,不是64位的,在主菜单的Tools→Options→File Templates,下加入# -*- coding: UTF-8 -*-,设置变为UTF。如图1-4所示。


图1-4  PyScripter中文件模板的设置


2.pythonw.exe,对应执行文件idle.bat,一般的电脑在

 C:\Python27\ArcGIS10.7\Lib\idlelib\idle.bat,10.7是ArcGIS软件的版本,如图1-5所示。


图1-5  pythonw软件的主界面


打开文件,如图1-6所示。


图1-6 pythonw打开文件后界面


3.PyCharm,是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发,如图1-7所示


专业版是收费的,Professional,教育版是免费,社区版是免费的 Free Community,教育版是教学式的,更适合学生。


社区版,就是简化的专业版,除了一些功能没有以外,他是用来解决工作问题的。部分功能没法用(例如:Web开发,Python Web框架,Python的探查,远程开发能力,数据库和SQL支持),安装后就可以使用,在前言二维码中下载。


专业版,功能丰富。对开发者来说十分专业的开发工具。PyCharm中Python路径的设置,如图1-7所示,在File菜单→Settings→Project→Project InterPreter下,分别如图1-8和图1-9所示,选Python路径,ArcMap中Python是2.7,ArcGIS Pro 2.5中是Python3.6.8,如果没有,点击最右边的,如图1-10所示,自己添加Python路径,如图1-11所示。


图1-7 PyCharm的界面


图1-8 PyCharm中Python中设置


图1-9 PyCharm中工程中设置


图1-10 PyCharm中Python以后路径


图1-11 PyCharm中自己添加Python路径


ArcGIS Python编辑器设置


在主菜单的地理处理→地理处理选择菜单中,如图1-12所示。


图1-12 地理处理选项的位置


在编辑器和调试程序中设置exe或bat(含路径),如图1-13所示。


图1-13 地理处理选项的中Python中编辑器和调试程序设置



文章授权转载:gisoracle

版权归原作者所有


- END -


学GIS,就业前景如何?
ArcGIS Python 脚本界面控制
7.72GB ARCGIS  ERDAS  ENVI干货教程网盘下载
ArcGIS shp文件合并在一起批量合并
ArcGIS制图技巧:制图入门与点、线、面状符号制作

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存